### Lab3-1 ### # 安裝 Flask 模組 >>> pip install Flask ### Lab3-2 (3-1.py) ### from flask import Flask # 從 flask 模組單獨匯入 Flask 類別 app = Flask(__name__) # 沒有其它的用意,如此 flask 才會知道你的 root 在何處 @app.route('/') # 利用裝飾器 @app.route 來定義路由,'/' 為網頁根目錄 def index(): # 連接到 '/'的時候,路由要執行的 function return 'Hello, Flask!' # 回傳字串 'Hello, Flask!' ### Lab3-3 ### # 在 Anaconda Prompt中,運行 flask run 指令 >>> flask run # 執行時,可加入常用的參數 >>> flask run --reload --debugger --host 0.0.0.0 --port 80 ### Lab3-4 (3-2.py) ### from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Hello, World!' @app.route('/hello') # 新增一個位址 def hello(): return 'Hello, Flask!' ### Lab3-5 (3-3.py) ### # 使用 app.run(),就可以直接運行任何檔名的 .py 檔 from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Hello, World!' if __name__ == '__main__': # 加上 Python 的 main 方法,執行 app.run() 函式 app.run(host = '0.0.0.0', port = 80, debug = True) ### Lab3-6 (3-4.py) ### # URL 成為函式接收的參數 (接收字串) from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Hello, World!' @app.route('/data/appInfo/', methods = ['GET']) def queryDataMessageByName(name): print('type(name) : ', type(name)) return 'String => {}'.format(name) if __name__ == '__main__': app.run(host = '0.0.0.0', port = 80, debug = True) ### Lab3-7 (3-5.py) ### # URL 成為函式接收的參數 (接收整數) from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Hello, World!' @app.route('/data/appInfo/id/', methods = ['GET']) def queryDataMessageById(id): print('type(id) : ', type(id)) return 'int => {}'.format(id) if __name__ == '__main__': app.run(host = '0.0.0.0', port = 80, debug = True) ### Lab3-8 (3-6.py) ### # URL 成為函式接收的參數 (接收浮點數) from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Hello, World!' @app.route('/data/appInfo/version/', methods = ['GET']) def queryDataMessageByVersion(version): print('type(version) : ', type(version)) return 'int => {}'.format(version) if __name__ == '__main__': app.run(host = '0.0.0.0', port = 80, debug = True) ### Lab3-9 (3-7.py) ### # 直接回傳 HTML 的函式 from flask import Flask app = Flask(__name__) @app.route('/text') def text(): return '

Hello World

' # 直接回傳 HTML if __name__ == '__main__': app.run(host = '0.0.0.0', port = 80, debug = True) ### Lab3-10 (3-8/render.py) ### from flask import Flask, render_template app = Flask(__name__) @app.route('/home') def home(): return render_template('home.html') if __name__ == '__main__': app.run(host = '0.0.0.0', port = 80, debug = True) ### Lab3-11 (3-8/templates/home.html) ### Home

My Website Text

Text Text Text 1 Text Text Text 2 Text Text Text 3
Text Text Text 4 Text Text Text 5 Text Text Text 6
Text Text Text 7 Text Text Text 8 Text Text Text 9
### Lab3-12 (3-9/render.py) ### from flask import Flask, render_template app = Flask(__name__) @app.route('/text') def text(): return '

Hello World

' @app.route('/home') def home(): return render_template('home.html') @app.route('/page/text') def pageText(): return render_template('page.html', text = 'Python Flask !') @app.route('/page/app') def pageAppInfo(): appInfo = { 'id': 5, 'name': 'Python - Flask', 'version': '1.0.1', 'author': 'Enoxs', 'remark': 'Python - Web Framework' } return render_template('page.html', appInfo = appInfo) @app.route('/page/data') def pageData(): data = { '01': 'Text Text Text', '02': 'Text Text Text', '03': 'Text Text Text', '04': 'Text Text Text', '05': 'Text Text Text' } return render_template('page.html', data = data) if __name__ == '__main__': app.run(host = '0.0.0.0', port = 80, debug = True) ### Lab3-13 (3-9/templates/page.html) ### Template - Page

Template - Page

{{text}}

{% if appInfo != undefined %}

AppInfo :

id : {{appInfo.id}}

name : {{appInfo.name}}

version : {{appInfo.version}}

author : {{appInfo.author}}

remark : {{appInfo.remark}}

{% endif %} {% if data != undefined %}

Data :

{% for key, value in data.items() %} {% endfor %}
{{ key }} {{ value }}
{% endif %} ### Lab3-14 (3-10/static.py) ### from flask import Flask, render_template app = Flask(__name__) @app.route('/static') def staticPage(): return render_template('static.html') if __name__ == '__main__': app.run(host = '0.0.0.0', port = 80, debug = True) ### Lab3-15 (3-10/static/script.js) ### function sayHello() { alert("Hello World"); } ### Lab3-16 (3-10/templates/static.html) ### Static - Page

Template - Page

### Lab3-17 (3-11/form.py) ### from flask import Flask, request, render_template, redirect, url_for app = Flask(__name__) @app.route('/form') def formPage(): return render_template('Form.html') @app.route('/submit', methods = ['POST', 'GET']) def submit(): if request.method == 'POST': user = request.form['user'] print('post : user => ', user) return redirect(url_for('success', name = user, action = 'post')) else: user = request.args.get('user') print('get : user => ', user) return redirect(url_for('success', name = user, action = 'get')) @app.route('/success//') def success(name, action): return '{} : Welcome {} ~ !!!'.format(action, name) if __name__ == '__main__': app.run(host = '0.0.0.0', port = 80, debug = True) ### Lab3-18 (3-11/templates/form.html) ### Form - Submit

POST

Enter Name:

GET

Enter Name: